'''
外来人员
1.当有外人进入时，刷身份证，收集该人员的信息，并按照进入顺序放入外来人员的序列。
2.学校管理员或门卫可以查看当前时刻在学校的外来人员信息，查看结果以外来人员进入学校的顺序显示。
3.当外来人员离开时，也只需要在身份证信息采集设备上刷一下身份证，系统将其从来访人员序列中删除。

'''

from datetime import datetime as dt
class visitor:
    def __init__(self):
        self.guess = []

    def register(self):
        s = input('姓名 身份证号 联系电话：')
        t=s.strip().split()
        t.append(str(dt.today()))
        self.guess.append(t)

    def leave(self):
        i, flag = 0, False
        s = input('请输入你的身份证号码：')
        while not flag:
            if i>=len(self.guess):
                print('no guess or number is error!')
                s = input('请输入你的身份证号码：') 
                i=0
            elif s==self.guess[i][1]:
                flag=True
                print('已离开：', self.guess.pop(i))
            else:
                i+=1
    def view(self):
        for i in range(len(self.guess)):
            print(f'{i+1}.{self.guess[i]}')


def menu():
    menudata = ['1.访客登记', '2.访客离开', '3.查看访客', '0.退出']
    print('---外来人员进出登记系统---')
    for i in menudata:
        print(i)
    select = int(input('请选择相应需要，执行相应操作：'))
    while select not in [1, 2, 3, 0]:
        select = int(input('请选择相应需要，执行相应操作：'))
    return select


if __name__ == '__main__':
    data = visitor()
    while True:
        select = menu()
        if select == 1:
            data.register()
        elif select == 2:
            data.leave()
        elif select == 3:
            data.view()
        elif select == 0:
            break
        else:
            print('输入错误，再来！')
